package webservice;

import java.util.HashMap;


import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;


import com.PublicSystem;


public class ServicePeople
{
	
	
	
	public String callWebservice(String value1, String value2 , String operType , String busType) {
		Service service = new Service();
		String resulet = "";
		
		String serverAddress = "http://10.72.37.74:7002/eapdomain/services/CardCenterPubInterface";
		try {
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(new java.net.URL(serverAddress));

			call.setOperationName("transBusinessForCard");
			call.addParameter( new QName("http://www.openuri.org/","keyInfo"),XMLType.XSD_STRING,ParameterMode.IN );
			call.addParameter( new QName("http://www.openuri.org/","conInfo"),XMLType.XSD_STRING,ParameterMode.IN );
			call.addParameter( new QName("http://www.openuri.org/","operType"),XMLType.XSD_STRING,ParameterMode.IN );
			call.addParameter( new QName("http://www.openuri.org/","busType"),XMLType.XSD_STRING,ParameterMode.IN );
			resulet = (String) call.invoke(new Object[] { value1,value2 , operType , busType});

		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return getSBH(resulet,value2);
		
	}

	
	
	
	public String getSBH(String str ,String cade )
	{
		if(!str.contains("$"))
		{
			return str;
		}
		
		String[] value = str.split("\\$") ;
		
		if("0".equals(value[0]))
		{
			if(str.contains("JS"))
			{
				return str.substring(str.indexOf("JS"), str.indexOf("JS") + 12);
			}
		}
		else
		{
			return value[2];
		}
		
		return "";
	}
	
	
	public  String people_keyInfo(HashMap obj){
		//验证码定值754
		//格式：IP地址|端口号|验证码|国家或地区|证件类型|证件号码|
		//姓名|卡识别码|省人员识别号
        String ip=(String)obj.get("ip");
        String port=(String)obj.get("port");
        String aac163=(String)obj.get("aac163");//国家或地区
        String aac058=(String)obj.get("aac058");//证件类型
        String aac147=(String)obj.get("aac002");//证件号码
        String aac003=(String)obj.get("aac003");//姓名
        String baz805=(String)obj.get("baz805");
        if(null == baz805 || "null".equals(baz805) || "".equals(baz805.trim()))
        {
        	baz805="";
        }
		String keyInfo="192.168.130.143"+"|8080|"+"754"+"|"+aac163+
				"|"+aac058+"|"+aac147+"|"+aac003+"||"+baz805;
		System.out.println("key =" + keyInfo + "----------------------------------------");
		return keyInfo;
	}
	public  String addPeople_conInfo(HashMap obj){
/*		AAC163||录入值|&AAC058||录入值|&AAE135||录入值|&||录入值|&AAC004||录入值|&AAB200||录入值|
 * &AAE011||录入值|& BAE017||录入值|& AAE005||录入值|& AAE006||录入值|&（注：1、其中AAC163（国家或地区）、
 * AAC003（姓名）、AAC058（证件类型）、AAE135（证件号码）、
 * AAC004（性别）、AAB200（行政区划代码，到县区）、AAE011（操作员姓名）为必录项，卡系统对数据的准确性、合法性进行校验*/
		
		
		
       String str = "AAC163,AAC058,AAE135,AAC003,AAC004,AAB200,AAE011,BAE017,AAE005,AAE006";
		
		String[] name = str.split(",");
			
		if(null == obj.get("aae011") || "".equals(obj.get("aae011").toString().trim()) || obj == null || obj.size() == 0)
		{
			return "操作员姓名不能为空！";
		}
		
		String returnvalue ="";
		for(int i = 0 ; i < name.length ; i++)
		{
			String value = (String) obj.get(name[i].toLowerCase());
			
			if(null == value || "null".equals(value))
			{
				value = "";
			}
			returnvalue = returnvalue + name[i] + "||" + value + "|&";
		}
		System.out.println("value =" + returnvalue + "+++++++++++++++++++++++++++++++++++++++++");
		return returnvalue;
		
	}
	
	
	public  String update_conInfo(HashMap obj){
		/*		AAC163|原值|录入值|&AAC058|原值|录入值|&AAE135|原值|录入值|&AAC003|原值|录入值|
		 * &AAC004|原值|录入值|&AAB200|原值|录入值|&AAE011|原值|录入值|& BAE017||录入值|& AAE005||录入值|&
		 *  AAE006||录入值|&（其中AAB200（行政区划代码，到县区）以及AAE011（操作员姓名）为必录项）*/
		String str = "AAC163,AAC058,AAE135,AAC003,AAC004,AAB200,AAE011,BAE017,AAE005,AAE006";
		
		String[] name = str.split(",");
		
		if(null == obj.get("aae011") || "".equals(obj.get("aae011").toString().trim()) || obj == null || obj.size() == 0)
		{
			return "操作员姓名不能为空！";
		}
		
		String returnvalue ="";
		for(int i = 0 ; i < name.length ; i++)
		{
			String value = (String) obj.get(name[i].toLowerCase());
			
			if(null == value || "null".equals(value))
			{
				value = "";
			}
			returnvalue = returnvalue + name[i] + "||" + value + "|&";
		}
		return returnvalue;
	}
			
	
	
	
	public static String mconInfo(HashMap obj){
		PublicSystem sys=PublicSystem.getInstance();
		/*		AAC163||录入值|&AAC058||录入值|&aac147||录入值|&AAC003||录入值|&AAC004||录入值|
				&AAB200||录入值|&AAE011||录入值|& BAE017||录入值|& AAE005||录入值|& AAE006||
				录入值|&（注：1、其中AAC163（国家或地区）、AAC003（姓名）、AAC058（证件类型）、aac147（证件号码）、
				AAC004（性别）、AAB200（行政区划代码，到县区）、AAE011（操作员姓名）为必录项，卡系统对数据的准确性、
				合法性进行校验。2、其中BAE017（手机号码）、AAE005（联系电话）、AAE006（通讯地址）为可选项。
				3、如果人员信息中上传第1条基础信息，现有本地业务系统与省卡管系统对接可不做改动。）*/
		        String aac999=obj.get("aac999").toString();//id
		        String sql = "select * from ac01 where AAC999 = ?";
		        List data = sys.query(sql, new Object[] {aac999} , true);
		        HashMap map=(HashMap)data.get(0);
				String aac163=obj.get("aac163").toString();//国家或地区
		        String aac058=obj.get("aac058").toString();//证件类型
		        String aac147=obj.get("aac147").toString();//证件号码
		        String aac003=obj.get("aac003").toString();//姓名
		        String aac004=obj.get("aac004").toString();
		        String aab200=obj.get("aab200").toString();
		        String aae011=obj.get("aae011").toString();
		        String bae017=obj.get("bae017").toString();
		        String aae005=obj.get("aae005").toString();
		        String aae006=obj.get("aae006").toString();
		        String aac1631=map.get("aac163").toString();//国家或地区
		        String aac0581=map.get("aac058").toString();//证件类型
		        String aac1471=map.get("aac147").toString();//证件号码
		        String aac0031=map.get("aac003").toString();//姓名
		        String aac0041=map.get("aac004").toString();
		        String aab2001=map.get("aab200").toString();
		        String aae0111=map.get("aae011").toString();
		        String bae0171=map.get("bae017").toString();
		        String aae0051=map.get("aae005").toString();
		        String aae0061=map.get("aae006").toString();
				String conInfo="AAC163|'"+aac1631+"'|'"+aac163+"'|&AAC058|'"+aac0581+"'|'"+aac058+"'|&aac147|'"+aac1471+"'|'"+aac147+"'|&AAC003|'"+aac0031+"'|'"+aac003+"'" +
						"|&AAC004|'"+aac0041+"'|'"+aac004+"'|&AAB200|'"+aab2001+"'|'"+aab200+"'|&AAE011|'"+aae0111+"'|'"+aae011+"'|& BAE017|'"+bae0171+"'|'"+bae017+
						 "'|& AAE005|'"+aae0051+"'|'"+aae005+"'|& AAE006|'"+aae0061+"'|'"+aae006+"'|&";
				return conInfo;
			}
}
